package br.ufrn.engcomp.arq.web;

import java.io.Serializable;


import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import br.ufrn.engcomp.comum.dominio.Usuario;
import br.ufrn.engcomp.arq.exceptions.DAOException;
import br.ufrn.engcomp.arq.exceptions.SegurancaException;
import br.ufrn.engcomp.arq.negocio.ProcessadorLogon;


/**
 *
 *@author Claudio Trindade
 *
 */
 
@ManagedBean
@SessionScoped
public class LogonMBean extends AbstractController<Usuario> implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
		
	public LogonMBean() { 
		super(); 
	} 
	
	@Override
	protected void initializeEntity() {
		setEntidade(new Usuario());
		
	}
	
	public void autenticar() {
		ProcessadorLogon procLogon = new ProcessadorLogon();
		
		try {
			Usuario userBD = procLogon.logar(getEntidade());
			if ( userBD != null ) {
				forward("/menuPrincipal.xhtml");				
			} else {
				FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Login ou Senha inválidos","");
				FacesContext.getCurrentInstance().addMessage(null, msg);
				forward("/login.xhtml");
			}
		} catch (SegurancaException e) {
			forward("/login.xhtml");
		}  catch (DAOException e) {
			forward("/login.xhtml");
		}
	}
	
//	public void autenticar() {
//
//				FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Bem vindo : " + getEntidade().getLogin(),"");
//				FacesMessage msg2 = new FacesMessage(FacesMessage.SEVERITY_INFO,"Bem vindo : " + getEntidade().getSenha(),"");
//				FacesContext.getCurrentInstance().addMessage(null, msg);
//				FacesContext.getCurrentInstance().addMessage(null, msg2);
//				forward("/menuPrincipal.xhtml");				
//
//	}

	public void deslogar() {
		forward("/login.xhtml");
	}

}
